package model

import util "gin-admin-api/utils"

type SysRole struct {
	ID          uint       `gorm:"column:id;comment:'主键';primaryKey;NOT NULL" json:"id"`              // ID
	RoleName    string     `gorm:"column:role_name;comment:'角色名称'" json:"roleName"`                   // 角色名称
	RoleKey     string     `gorm:"column:role_key;default:1;comment:'权限字符串';NOT NULL" json:"roleKey"` // 权限字符串
	Status      uint       `gorm:"column:status;comment:'状态： 1:启动，2:禁用'" json:"status"`               // 状态： 1:启动，2:禁用
	Description string     `gorm:"column:description;comment:'描述'" json:"description"`                // 描述
	CreateTime  util.Htime `gorm:"column:create_time;comment:'创建时间'" json:"createTime"`               // 创建时间
}

func (SysRole) TableName() string {
	return "sys_role"
}

// AddSysRoleDto 新增角色参数
type AddSysRoleDto struct {
	RoleName    string `json:"roleName"`    // 角色名称
	RoleKey     string `json:"roleKey"`     // 权限字符串
	Status      uint   `json:"status"`      // 状态： 1:启动，2:禁用
	Description string `json:"description"` // 描述
}

// UpdateSysRoleDto 修改角色参数
type UpdateSysRoleDto struct {
	ID          uint   `json:"id"`          // ID
	RoleName    string `json:"roleName"`    // 角色名称
	RoleKey     string `json:"roleKey"`     // 权限字符串
	Status      uint   `json:"status"`      // 状态： 1:启动，2:禁用
	Description string `json:"description"` // 描述
}

// SysRoleIdDto id参数
type SysRoleIdDto struct {
	ID uint `json:"id"` // ID
}

// UpdateSysRoleStatusDto 设置状态参数
type UpdateSysRoleStatusDto struct {
	ID     uint `json:"id"`     // ID
	Status uint `json:"status"` // 状态： 1:启动，2:禁用
}

// SysRoleVo 角色下拉列表
type SysRoleVo struct {
	ID       uint   `json:"id"`       // ID
	RoleName string `json:"roleName"` // 角色名称
}

// IdVo 当前角色的菜单授权id
type IdVo struct {
	ID int `json:"id"` // ID
}

// RoleMenuDto 角色id与菜单id列表参数
type RoleMenuDto struct {
	ID      uint   `json:"id" binding:"required"`      // 角色id
	MenuIds []uint `json:"menuIds" binding:"required"` // 菜单id列表
}
